home *** CD-ROM | disk | FTP | other *** search
- *******************************************************
- *** Bob Vector example for TSB's Vectordesigner ***
- *** -------------------------------------------- ***
- *** ***
- *** written by ALLOC ***
- *** ***
- *******************************************************
- ;---------------------------------------
- ; a (return)
- ;(return)
- ; y (return)
- ; jm (return)
-
- >extern "df0:readyobjects/bob",ball1,208
- >extern "df0:readyobjects/mask",mask1,64
- >extern "df0:readyobjects/bobobject.b",vb_obj6,64
- org $30000
- load $30000
-
- clear: MACRO
- lea $dff000,a5
- move.l ?1,$54(a5)
- move.w #?2,d0 ;x
- move.w #?3,d1 ;y
- move.w #$0,$66(a5)
- move.w #%0000000100000000,$40(a5)
- move.w #0,$42(a5)
- lsl.w #6,d1
- or.w d1,d0
- move.w d0,$58(a5)
- ENDM
-
-
- m:
-
- lea $dff000,a5
- movem.l d0-d7/a0-a6,-(a7)
- moveq #61,d0
- lea zero,a0
- lea 8,a1
- copyzero: move.l (a1)+,(a0)+
- dbf d0,copyzero
- move.l #raus,$020
- raus: move.w #$2700,sr
- adda #6,a7
- move.l a7,sstack
- move.l #stackend,a7
- move.w $1c(a5),intbuff
- move.w #$7fff,$9a(a5)
- move.w #$7fff,$9c(a5)
- bra.L main
- oson: move.w #$2700,sr
- move.w #$7fff,$9a(a5)
- move.w intbuff(pc),d0
- ori.w #$8000,d0
- move.w d0,$9a(a5)
- moveq #61,d0
- lea zero(pc),a0
- lea 8,a1
- zeroback: move.l (a0)+,(a1)+
- dbf d0,zeroback
- move.l sstack(pc),a7
- move.w #0,sr
- movem.l (a7)+,d0-d7/a0-a6
- rts
- grname: dc.b "graphics.library",0
- align 4
-
- zero: blk.l 62,0
- align 4
- sstack: dc.l 0
- stack: blk.b 4048
- stackend:
- align 4
-
- intbuff: dc.l 0
- align 4
- main:
- **********************
- *** Voreinstellung ***
- **********************
-
- lea ball1+192,a0
- lea tsbcolors,a1
- moveq #7,d0
- tsbcolorset:
- move.w (a0)+,2(a1)
- add.l #4,a1
- dbf d0,tsbcolorset
-
- lea $dff000,a5
- move.l #$ffffffff,$44(a5)
- move.w #%1000010000000000,$96(a5)
- move.w #%0000011111111111,$96(a5)
- move.l #copperlist,$80(a5)
- clr.w $88(a5)
- move.w #%1000011111000000,$96(a5)
- lea hauptloop(pc),a4
- move.l a4,$6c
- move.w #$c010,$9a(a5)
- move.w #$2000,sr
-
- ************
- *** Wait ***
- ************
-
- wait:
- move.l $dff004,d0
- and.l #$1ff00,d0
- cmp.l #$ff00,d0
- ble.s wait
- moveq #0,d0
- bsr vballs
- move.l workplane,a0
- move.l showplane,workplane
- move.l a0,showplane
- btst #6,$bfe001
- beq end
- bra wait
- **************************
- ****** Hauptteil *******
- **************************
-
- hauptloop:
- move.w #$10,$dff09c
- movem.l d0-d7/a0-a6,-(a7)
- lea bob1adrs,a0
- move.l showplane,d0
- moveq #2,d7
- planesset:
- swap d0
- move.w d0,2(a0)
- swap d0
- move.w d0,6(a0)
- add.l #8,a0
- add.l #[200*40],d0
- dbf d7,planesset
- hplend:
- movem.l (a7)+,d0-d7/a0-a6
- rte
-
-
- workplane:
- dc.l $60000
- showplane:
- dc.l $70000
-
-
-
-
- ***************
- *** E N D E ***
- ***************
-
-
- end:
- lea $dff000,a5
- move.l 4,a6
- lea grname(pc),a1
- clr.l d0
- jsr -408(a6)
- move.l d0,a4
- move.l 38(a4),$80(a5)
- clr.w $88(a5)
- move.w #$83f0,$96(a5)
- jmp oson
-
- copperlist:
- dc.w $008e,$2981,$0090,$29c1
- dc.w $0092,$0038,$0094,$00d0
- dc.w $0108,$0000,$010a,$0000
- dc.w $0102,$0000,$0104,$0024
- dc.w $120,$0,$122,$0
- dc.w $124,$0,$126,$0
- dc.w $128,$0,$12a,$0
- dc.w $12c,$0,$12e,$0
- dc.w $130,$0,$132,$0
- dc.w $134,$0,$136,$0
- dc.w $138,$0,$13a,$0
- dc.w $13c,$0,$13e,$0
- dc.w $100,$0200
- dc.w $9c,$8010
- tsbcolors:
- dc.w $180,0,$182,$125
- dc.w $184,0,$186,0
- dc.w $188,0,$18a,0
- dc.w $18c,0,$18e,0
- dc.w $190,0,$192,0
- dc.w $194,0,$196,0
- dc.w $198,0,$19a,0
- dc.w $19c,0,$19e,0
-
- dc.w $4809,$fffe
- bob1adrs:
- dc.w $00e0,$0006,$00e2,$4000
- dc.w $00e4,$0006,$00e6,$4c00
- dc.w $00e8,$0006,$00ea,$5800
- dc.w $4a09,$fffe
- dc.w $100,$3200
- dc.w $ffe1,$fffe
- dc.w $0809,$fffe
- dc.w $100,$0200
- dc.w $ffff,$fffe
-
-
-
-
- *********************
- ****** 3D Bobs ******
- ****** by ******
- ****** ALLOC ******
- ****** march 90******
- *********************
- vb_hi:
- dc.w 0
- vb_low:
- dc.w 0
-
-
- vballs:
- movem.l a0-a6/d0-d7,-(a7)
- clr.w vb_hi
- move.w #400,vb_low
- lea vb_pointer(pc),a0
- lsl.l #4,d0
- add.l d0,a0
- move.l workplane,d0
- clear d0,20,600
- move.l (a0),a4
- move.l 8(a0),a6
- add.w #2,6(a6)
- add.w #2,8(a6)
- add.w #2,10(a6)
- and.w #$1ff,6(a6)
- and.w #$1ff,8(a6)
- and.w #$1ff,10(a6)
-
- vb_1:
- lea pic1,a5
- move.w (a4)+,d0
- cmp.w #$7fff,d0
- beq.L vb_2
- move.w (a4)+,d1
- move.w (a4)+,d2
- move.w 6(a6),a0
- move.w 8(a6),a1
- move.w 10(a6),a2
- bsr rotate
- add.w (a6),d0
- sub.w 2(a6),d1
- neg.w d1
- add.w 4(a6),d2
- ext.l d0
- ext.l d1
- ext.l d2
- asl.l #8,d0
- asl.l #8,d1
- move.l d2,d3
- add.l #230,d3
- divs d3,d0
- divs d3,d1
- add.w #159,d0
- add.w #88,d1
- moveq #0,d7
- move.l d2,d7
- cmp.w vb_low,d7
- bge.s vb_10
- move.w d7,vb_low
- vb_10:
- cmp.w vb_hi,d7
- ble.s vb_11
- move.w d7,vb_hi
- vb_11:
-
- mulu #322,d7
- add.l d7,a5
- move.w (a5),d7
- add.w #8,(a5)
- addq.l #2,d7
- move.w d0,(a5,d7.w)
- move.w d1,2(a5,d7.w)
- move.w (a4)+,4(a5,d7.w)
- move.w d2,6(a5,d7.w)
- bra.L vb_1
- vb_2:
-
-
- vb_20:
- lea pic1,a5
- move.l a5,a4
- moveq #0,d7
- move.w vb_low,d7
- mulu #322,d7
- add.l d7,a4
- sub.l #322,a4
- moveq #0,d7
- move.w vb_hi,d7
- mulu #322,d7
- add.l d7,a5
- add.l #322,a5
- move.l a5,a6
- vb_21:
- sub.l #322,a6
- cmp.l a6,a4
- beq vb_23
- move.l a6,a5
- tst.w (a5)
- beq.s vb_21
- move.w (a5),d5
- lsr.w #3,d5
- subq #1,d5
- clr.w (a5)
- adda.l #2,a5
-
- vb_22:
- move.w (a5)+,d0
- move.w (a5)+,d1
- move.w (a5)+,d2
- move.w (a5)+,d3
- moveq #0,d3
- bsr bobdraw
- dbf d5,vb_22
- bra vb_21
- vb_23:
- movem.l (a7)+,a0-a6/d0-d7
- rts
-
-
-
- *****************
- **** Bobdraw ****
- *****************
- ;d0,d1 x,y
- ;d2,d3 table,depth
- bobdraw:
- movem.l d4-d7/a0-a6,-(a7)
- firstwait:
- btst #14,$dff002
- bne firstwait
- lea balltypes(pc),a0
- lsl.w #2,d2
- move.l (a0,d2.w),a0
- lsl.w #3,d3
- move.l 16(a0,d3.w),a1
- move.l 20(a0,d3.w),a2
- move.l workplane,a3
- mulu #40,d1
- add.l d1,a3
- moveq #0,d1
- move.w d0,d1
- and.w #$f,d0
- lsl.w #8,d0
- lsl.w #4,d0
- and.w #$fff0,d1
- lsr.w #3,d1
- add.l d1,a3
- lea $dff000,a5
- move.w #$fe2,d2
- or.w d0,d2
- move.w d2,$40(a5)
- move.w d0,$42(a5)
- move.l a3,$48(a5)
- move.l a2,$4c(a5)
- move.l a1,$50(a5)
- move.l a3,$54(a5)
- move.l (a0),d0
- neg.w d0
- add.w #40,d0
- move.w d0,$60(a5)
- move.w d0,$66(a5)
- move.l #0,$62(a5)
- move.l (a0),d0
- lsr.w #1,d0
- move.l 4(a0),d1
- lsl.w #6,d1
- or.w d1,d0
- move.l 8(a0),d7
- move.l 12(a0),d2
- bobblitt:
- move.w d0,$58(a5)
- add.l #$1f40,a3
- add.l d2,a1
- move.l a1,$50(a5)
- move.l a3,$54(a5)
- move.l a3,$48(a5)
- move.l a2,$4c(a5)
- dbf d7,bobblitt
-
-
- movem.l (a7)+,d4-d7/a0-a6
- rts
- ***************
- **** Balls ****
- ***************
-
- balltypes:
-
- dc.l ball1table
-
-
- ball1table:
- dc.l 4,16,2,64 ;x,y,depth,length
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
- dc.l ball1,mask1
-
-
- ****************
- **** VB OBJ ****
- ****************
- vb_pointer:
- dc.l vb_obj6,0,vb_pos6,vb_path6
-
-
-
- vb_obj6:
- blk.w 1000,$7fff
-
-
- vb_pos6:
- dc.w 0,0,60,0,0,0 ;x,y,z,xa,ya,za
-
- vb_path6:
- dc.w 0,0,0,4,0,0 ;Veraenderungen
- dc.w 128,0 ;timer,pointer
- dc.w 0,0,150 ;x,y,z start
- dc.w 0,0,0 ;xa,ya,za start
- dc.w 256,0,0,0,4,0,0,0
- dc.w 256,0,0,0,0,8,0,0
- dc.w 256,0,0,0,0,0,4,0
- dc.w 256,0,0,0,8,0,0,0
- dc.w 256,0,0,0,0,4,0,0
- dc.w 256,0,0,0,0,0,8,0
- dc.w 256,0,0,0,0,4,4,0
- dc.w 256,0,0,0,0,0,8,0
- dc.w 256,0,0,0,0,8,8,0
- dc.w 128,0,0,0,0,0,8,0
- dc.w $ffff
-
-
-
-
-
-
- *********************************************************
- ***********************************************************
-
-
-
-
- ********************
- *** 3-D Rotieren ***
- ********************
- ;d0,d1,d2 x,y,z
- ;a0,a1,a2 umx,umy,umz
-
- rotate:
- movem.l d3-d7/a3-a6,-(a7)
- lea costable(pc),a3
- lea sintable(pc),a4
- cmp.w #0,a2
- beq rot_1
- move.w d0,d4
- move.w d1,d5
- muls (a3,a2.w),d4
- muls (a4,a2.w),d5
- sub.l d5,d4
- asr.l #8,d4
- move.w d4,d6
- move.w d0,d4
- move.w d1,d5
- muls (a4,a2.w),d4
- muls (a3,a2.w),d5
- add.l d4,d5
- asr.l #8,d5
- move.w d5,d1
- move.w d6,d0
- rot_1:
- cmp.w #0,a0
- beq rot_2
- move.w d2,d4
- move.w d1,d5
- muls (a3,a0.w),d4
- muls (a4,a0.w),d5
- sub.l d5,d4
- asr.l #8,d4
- move.w d4,d6
- move.w d2,d4
- move.w d1,d5
- muls (a4,a0.w),d4
- muls (a3,a0.w),d5
- add.l d4,d5
- asr.l #8,d5
- move.w d5,d1
- move.w d6,d2
- rot_2:
- cmp.w #0,a1
- beq rot_end
- move.w d0,d4
- move.w d2,d5
- muls (a3,a1.w),d4
- muls (a4,a1.w),d5
- sub.l d5,d4
- asr.l #8,d4
- move.w d4,d6
- move.w d0,d4
- move.w d2,d5
- muls (a4,a1.w),d4
- muls (a3,a1.w),d5
- add.l d4,d5
- asr.l #8,d5
- move.w d5,d2
- move.w d6,d0
- rot_end:
- movem.l (a7)+,d3-d7/a3-a6
- rts
-
-
- costable:
-
- dc.w 256,256,256,255,255,254,253,252
- dc.w 251,250,248,247,245,243,241,239
- dc.w 237,234,231,229,226,223,220,216
- dc.w 213,209,206,202,198,194,190,185
- dc.w 181,177,172,167,162,157,152,147
- dc.w 142,137,132,126,121,115,109,104
- dc.w 98,92,86,80,74,68,62,56
- dc.w 50,44,38,31,25,19,13,6
- dc.w 0,-5,-12,-18,-24,-30,-37,-43
- dc.w -49,-55,-61,-67,-73,-79,-85,-91
- dc.w -97,-103,-108,-114,-120,-125,-131,-136
- dc.w -141,-146,-151,-156,-161,-166,-171,-176
- dc.w -180,-184,-189,-193,-197,-201,-205,-208
- dc.w -212,-215,-219,-222,-225,-228,-230,-233
- dc.w -236,-238,-240,-242,-244,-246,-247,-249
- dc.w -250,-251,-252,-253,-254,-254,-255,-255
- dc.w -255,-255,-255,-254,-254,-253,-252,-251
- dc.w -250,-249,-247,-246,-244,-242,-240,-238
- dc.w -236,-233,-230,-228,-225,-222,-219,-215
- dc.w -212,-208,-205,-201,-197,-193,-189,-184
- dc.w -180,-176,-171,-166,-161,-156,-151,-146
- dc.w -141,-136,-131,-125,-120,-114,-108,-103
- dc.w -97,-91,-85,-79,-73,-67,-61,-55
- dc.w -49,-43,-37,-30,-24,-18,-12,-5
- dc.w 0,6,13,19,25,31,38,44
- dc.w 50,56,62,68,74,80,86,92
- dc.w 98,104,109,115,121,126,132,137
- dc.w 142,147,152,158,162,167,172,177
- dc.w 181,185,190,194,198,202,206,209
- dc.w 213,216,220,223,226,229,231,234
- dc.w 237,239,241,243,245,247,248,250
- dc.w 251,252,253,254,255,255,256,256
-
-
-
- sintable:
-
- dc.w 0,-5,-12,-18,-24,-30,-37,-43
- dc.w -49,-55,-61,-67,-73,-79,-85,-91
- dc.w -97,-103,-108,-114,-120,-125,-131,-136
- dc.w -141,-146,-151,-156,-161,-166,-171,-176
- dc.w -180,-184,-189,-193,-197,-201,-205,-208
- dc.w -212,-215,-219,-222,-225,-228,-230,-233
- dc.w -236,-238,-240,-242,-244,-246,-247,-249
- dc.w -250,-251,-252,-253,-254,-254,-255,-255
- dc.w -255,-255,-255,-254,-254,-253,-252,-251
- dc.w -250,-249,-247,-246,-244,-242,-240,-238
- dc.w -236,-233,-230,-228,-225,-222,-219,-215
- dc.w -212,-208,-205,-201,-197,-193,-189,-184
- dc.w -180,-176,-171,-166,-161,-156,-151,-146
- dc.w -141,-136,-131,-125,-120,-114,-108,-103
- dc.w -97,-91,-85,-79,-73,-67,-61,-55
- dc.w -49,-43,-37,-30,-24,-18,-12,-5
- dc.w 0,6,13,19,25,31,38,44
- dc.w 50,56,62,68,74,80,86,92
- dc.w 98,104,109,115,121,126,132,137
- dc.w 142,147,152,158,162,167,172,177
- dc.w 181,185,190,194,198,202,206,209
- dc.w 213,216,220,223,226,229,231,234
- dc.w 237,239,241,243,245,247,248,250
- dc.w 251,252,253,254,255,255,256,256
- dc.w 256,256,256,255,255,254,253,252
- dc.w 251,250,248,247,245,243,241,239
- dc.w 237,234,231,229,226,223,220,216
- dc.w 213,209,206,202,198,194,190,185
- dc.w 181,177,172,167,162,157,152,147
- dc.w 142,137,132,126,121,115,109,104
- dc.w 98,92,86,80,74,68,62,56
- dc.w 50,44,38,31,25,19,13,6
-
-
-
- ball1:
- blk.b 208,0
-
- mask1:
- blk.b 64,0
- pic1:
- blk.b 120000,0
-
-